import {login, checkToken} from '/api/login/login';

/**
 * 清楚refreshToken
 */
const clearRefreshToken = (app) => {
    clearInterval(app.globalData.refreshTime);
    app.globalData.refreshLock = false
    //跳转到登录界面
    // 登录成功后跳转到首页
    uni.reLaunch({
        url: "/pages/login/login",
    });
}

/**
 * 最后一个是token没有过期的回调函数,可以传递空或者不传递,...unExpiresCallBackArg回调函数参数
 */
const checkTokenFunc = (app,unExpiresCallBack,...unExpiresCallBackArg) => {
    console.log("测试checkTokenFunc")
    // 第四个参数就是clearRefreshToken，表示登录过期的处理
    checkToken(app.globalData.refreshTime, app.globalData.refreshLock, app, clearRefreshToken, unExpiresCallBack,...unExpiresCallBackArg);
}

/**
 * token自动刷新
 */
const refreshToken = (app) => {
    console.log("测试开启自动刷新token refreshToken")
    app.globalData.refreshTime = setInterval(()=>{
		checkTokenFunc(app,null) //如果token没有过期,自动刷新的时候什么也不需要做,只需要继续刷新即可
	}, 60000);
}


/**
 * 测试阶段 自动登录方法进行测试
 */
const autoLogin = () => {
    console.log("测试自动登录")
    login({username: "admin", password: "123456"})
        .then((res) => {
            console.log('测试自动登录', res)
            // 存储token 信息
            LocalStorage.set('token', res.data.access_token);
            LocalStorage.set('refresh_token', res.data.refresh_token);
            uni.showToast({
                title: "自动登录成功"
            });
            // resolve(res);
        })
        .catch((err) => {
            uni.showToast({
                title: err?.msg || '系统异常请联系管理员'
            });
            // reject(err);
        });
}

const checkTokenMethods = {
    clearRefreshToken,
    checkTokenFunc,
    refreshToken,
    autoLogin,
};

export default checkTokenMethods;